package _7_集合._4_Queue;

import org.junit.jupiter.api.Test;

import java.util.LinkedList;
import java.util.Queue;

/**
 *  队列（Queue）是一种经常使用的集合。Queue实际上是实现了一个先进先出（FIFO：First In First Out）的有序表。
 *  它和List的区别在于，List可以在任意位置添加和删除元素.
 *  Queue只有两个操作：
 *      ReaderTest.把元素添加到队列末尾；
 *      2.从队列头部取出元素。
 *
 *  举例：超市收银（先进先出）
 */
public class QueueTest {

    @Test
    public void pollQueueTest(){
        Queue<String> queue = new LinkedList<>();
        //添加元素到队尾
        queue.offer("apple");
        queue.offer("pear");
        queue.offer("banana");
        System.out.println("队列长度：" + queue.size());
        System.out.println("获取队首元素，并从队列删除：" + queue.poll());
        System.out.println("获取队首元素，并从队列删除：" + queue.poll());
        System.out.println("获取队首元素，并从队列删除：" + queue.poll());
        System.out.println("队列没有值，返回：" + queue.poll());
    }

    @Test
    public void peekQueueTest(){
        Queue<String> queue = new LinkedList<>();
        queue.offer("apple");
        queue.offer("pear");
        queue.offer("banana");
        System.out.println("获取队首元素，但并不从队列删除：" + queue.peek());
        System.out.println("获取队首元素，但并不从队列删除：" + queue.peek());
        System.out.println("获取队首元素，但并不从队列删除：" + queue.peek());
    }
}
